package com.example.dao;

import com.example.entity.Article;
import com.example.entity.Type;
import com.example.entity.vo.ArticleVo;
import com.example.entity.vo.SearchVO;

import java.util.List;

public interface ArticalDao {
//    包:小写
//    类名:大驼峰
//    方法:第一个字母小写,接下来按照大驼峰命名,
//    参数:小驼峰命名


    //根据文章id来查找文章
    Article findArticleByArticalId(Long articalId);

    //个人热门文章,传的是用户id
    List<ArticleVo> findArticleByUserId(Long userId);



    //返回时间差值
//    int differTime(Long articalId);

    //用户页面对文章标题模糊查询
    List<Article> findArticalByBlur(String str);

    Article getArticleById(Long id);

    //更新文章
    int updateArticle(Article article);

    //新增文章
    int addArticle(Article article);

    //查询热门文章
    List<Article> queryHotArtical(long type);

    List<Type> queryType();

    List<Article> queryHotTitle();

    List<Article> SearchByKey(String key);

    //记录表判断是否点赞
    int isLikes(Long userId,Long authordId);

    //增加点赞数
    int addLikes(Long userId,Long authordId);

    //取消赞
    int reducedLikes(Long userId,Long authordId);

    //判断收藏
    int isCollect(Long userId,Long articleId);

    //查找该用户的收藏
    List<Article> queryColletedByUserId(long userId);


    //取消收藏
    int updateColletionByUserIdArticleId(long userId, long articleId);

    //添加收藏
    int addColletionByUserIdArticleId(long userId, long articleId);

//    删除文章
    int deleteById(long id);

    //用户全部文章
    List<Article> findAllArticleByUserId(Long userId);

    //关键词搜索用户的文章
    List<Article> SearchByKeyByUserId(String  word, Long userId);
}
